package com.garmin.tw.garminpcsync.common.domain.xmlrpc;

import java.io.Serializable;

public class SoftwareUpdateInfo implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4182843485006958115L;

	private Integer returnCode;

	private String originalSku;

	private String originalVersion;

	private String latestSku;

	private String latestVersion;

	private String description;
	
	private String releaseNote;

	private Boolean updateAvailable;
	
	private String serverPath;
	
	private String fileName;
	
	private Integer fileSize;
	
	private String md5;
	
	private String absoluteFilePath;

	/**
	 * Gets the return code of this software, and only in following list:<br>
	 * <ul>
	 * <li> 1:Success<br>
	 * <li>21:Can not find the ESN<br>
	 * <li>22.Not Supported Device GPN<br>
	 * <li>41:Can not find the latest map data<br>
	 * <li>42: Not Valid Map SKU<br>
	 * <li>-1:Error<br>
	 * <li>99: Can not find Software<br>
	 * </ul>
	 * @return the return code of this software
	 */
	public Integer getReturnCode() {
		return returnCode;
	}

	/**
	 * Sets the return code of this software.
	 * @param returnCode
	 */
	public void setReturnCode(Integer returnCode) {
		this.returnCode = returnCode;
	}

	/**
	 * Gets the current GPN of this software.
	 * @return the current GPN of this software
	 */
	public String getOriginalSku() {
		return originalSku;
	}

	/**
	 * Gets the current GPN of this software.
	 * @param originalSKU
	 */
	public void setOriginalSku(String originalSku) {
		this.originalSku = originalSku;
	}

	/**
	 * Gets the current version of this software.
	 * @return the current version of this software
	 */
	public String getOriginalVersion() {
		return originalVersion;
	}

	/**
	 * Sets the current version of this software.
	 * @param originalVersion
	 */
	public void setOriginalVersion(String originalVersion) {
		this.originalVersion = originalVersion;
	}

	/**
	 * Gets the latest GPN of this software.
	 * @return the latest GPN of this software
	 */
	public String getLatestSku() {
		return latestSku;
	}

	/**
	 * Sets the latest GPN of this software.
	 * @param latestSku
	 */
	public void setLatestSku(String latestSku) {
		this.latestSku = latestSku;
	}

	/**
	 * Gets the latest version of this software.
	 * @return the latest version of this software
	 */
	public String getLatestVersion() {
		return latestVersion;
	}

	/**
	 * Sets the latest version of this software.
	 * @param latestVersion
	 */
	public void setLatestVersion(String latestVersion) {
		this.latestVersion = latestVersion;
	}

	/**
	 * Gets the description of this software update file.
	 * @return the description of this software update file
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * Sets the description of this software update file.
	 * @param description
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * Gets the release note of this software update file.
	 * @return the release note of this software update file
	 */
	public String getReleaseNote() {
		return releaseNote;
	}

	/**
	 * Sets the release note of this software update file.
	 * @param releaseNote
	 */
	public void setReleaseNote(String releaseNote) {
		this.releaseNote = releaseNote;
	}
	
	/**
	 * Gets the update available of this software.
	 * @return the update available of this software
	 */
	public Boolean getUpdateAvailable() {
		return updateAvailable;
	}

	/**
	 * Sets the update available of this software.
	 * @param updateAvailable
	 */
	public void setUpdateAvailable(Boolean updateAvailable) {
		this.updateAvailable = updateAvailable;
	}

	/**
	 * Gets the server path of this software update file.
	 * @return the server path of software update file
	 */
	public String getServerPath() {
		return serverPath;
	}

	/**
	 * Sets the server path of this software update file.
	 * @param serverPath
	 */
	public void setServerPath(String serverPath) {
		this.serverPath = serverPath;
	}

	/**
	 * Gets the name of this software update file.
	 * @return the name of this software update file
	 */
	public String getFileName() {
		return fileName;
	}

	/**
	 * Sets the name of this software update file.
	 * @param fileName
	 */
	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	/**
	 * Gets the size of this software update file.
	 * @return the size of this software update file
	 */
	public Integer getFileSize() {
		return fileSize;
	}

	/**
	 * Sets the size of this software update file.
	 * @param fileSize
	 */
	public void setFileSize(Integer fileSize) {
		this.fileSize = fileSize;
	}

	/**
	 * Gets the MD5 checksum of this software update file.
	 * @return the MD5 checksum of this software update file
	 */
	public String getMd5() {
		return md5;
	}

	/**
	 * Sets the MD5 checksum of this software update file.
	 * @param md5
	 */
	public void setMd5(String md5) {
		this.md5 = md5;
	}

	/**
	 * Gets the absolute file path in device of this software update file. 
	 * @return the absolute file path in device of this software update file
	 */
	public String getAbsoluteFilePath() {
		return absoluteFilePath;
	}

	/**
	 * Sets the absolute file path in device of this software update file.
	 * @param absoluteFilePath
	 */
	public void setAbsoluteFilePath(String absoluteFilePath) {
		this.absoluteFilePath = absoluteFilePath;
	}
}
